#ifndef FVDOUBLE_H_
#define FVDOUBLE_H_

#include <cassert>
#include <cmath>

#include "Defines.h"

// Classe que representa um vetor de double estático
class vdouble
{

public:

    // Constrói um vetor com um tamanho predefinido
    vdouble(uint size);
    virtual ~vdouble();

    // Retorna o tamanho do vetor
    uint size();
    // Retorna o valor na posição i
    double get(uint i);
    // Retorna o valor na posição i como um uint
    uint getuint(uint i);

    // Seta o valor na posição i
    void set(uint i, double d);
    // Incrementa o valor na posição i
    void inc(uint i, double d);
    // Adiciona mais um elemento no vetor
    void push_back(double d);

    // Verifica se está cheio
    bool is_full();
    // Redimensiona o vetor
    void resize(uint size);

private:

    double *_v;
    uint _size;
    uint _index;

};

#endif /* FVDOUBLE_H_ */
